This invention relates to congestion control in networks and, more particularly, to congestion control in the Internet.
Congestion control in packet networks has proven to be a difficult problem, generally. In the Internet, however, this problem is particularly challenging, due to the very limited observability and controllability of the network. In order to accommodate rapid growth and proliferation, the design of the IP protocol and the requirements placed on individual subnetworks have been kept to a minimum. Consequently, the main form of congestion control possible in the current Internet is end-to-end control of user traffic at the transport layer. As exemplified by TCP, this control must be exerted using only the limited network observation that sessions can make locally, based on their own performance. The prevalent form of service discipline in the Internet is FIFO queueing, and control approaches that are based on more sophisticated service disciplines are not easily applicable.
Although the current TCP congestion control has been relatively successful, its ability to optimally control congestion is exceedingly stretched by the rapid growth of the Internet and the proliferation of both real-time and multicast services. Over the past several years, considerable effort has been directed at improving the existing techniques of congestion control in the Internet and at introducing new approaches to accommodate the requirements of new services and applications. For example, methods of enforcing fairness or user priorities have been extensively studied in recent years. They are usually based on non-FIFO service scheduling at network switches, where traffic streams meet and competition for resources arises. Also, methods for network congestion control based on optimization techniques have been studied which use distributed computations. However, algorithms proposed for this purpose require sophisticated network layer protocols; which is a luxury that is not available in the Internet for end-to-end congestion control.
What is needed is a method for optimizing network usage without resort to sophisticated network layer protocols.